13.1 使用 MCP 资源

4 分钟阅读

MCP 资源是服务器提供的数据源,包括数据库表、文件系统、API 端点等。

资源类型#

数据库资源#

数据库表和视图:

bash
# 查看可用的数据库资源 /mcp

输出示例:

bash
MCP 资源:
- database://users: 用户表
- database://orders: 订单表
- database://products: 产品表

访问资源#

基本访问#

bash
# 访问数据库资源 查询数据库中的用户表 # 访问文件系统资源 读取日志目录中的文件 # 访问 API 资源 调用用户 API # 访问配置资源 读取应用配置

资源查询#

bash
# 查询数据库资源 查询用户表中所有活跃用户 # 查询文件系统资源 查找日志目录中的错误日志 # 查询 API 资源 获取用户 ID 为 123 的信息 # 查询配置资源 获取数据库配置中的连接字符串

资源过滤#

bash
# 过滤数据库资源 查询用户表中年龄大于 18 的用户 # 过滤文件系统资源 查找日志目录中今天的日志文件 # 过滤 API 资源 获取用户表中状态为活跃的用户 # 过滤配置资源 获取配置中的生产环境设置

资源操作#

读取资源#

bash
# 读取数据库资源 读取用户表的前 10 条记录 # 读取文件系统资源 读取日志目录中的最新日志 # 读取 API 资源 获取用户 ID 为 123 的详细信息 # 读取配置资源 读取应用配置中的数据库设置

写入资源#

bash
# 写入数据库资源 向用户表插入新用户 # 写入文件系统资源 将日志写入日志目录 # 写入 API 资源 更新用户 ID 为 123 的信息 # 写入配置资源 更新应用配置中的数据库设置

更新资源#

bash
# 更新数据库资源 更新用户表中 ID 为 123 的用户信息 # 更新文件系统资源 更新日志目录中的日志文件 # 更新 API 资源 更新用户 ID 为 123 的状态 # 更新配置资源 更新应用配置中的超时设置

删除资源#

bash
# 删除数据库资源 删除用户表中 ID 为 123 的用户 # 删除文件系统资源 删除日志目录中的旧日志文件 # 删除 API 资源 删除用户 ID 为 123 的记录 # 删除配置资源 删除应用配置中的过时设置

资源元数据#

查看资源信息#

bash
# 查看资源详细信息 显示用户表的详细信息

输出示例:

bash
资源:database://users
类型:数据库表
列:
- id: INTEGER, PRIMARY KEY
- name: VARCHAR(255)
- email: VARCHAR(255)
- created_at: TIMESTAMP
索引:
- idx_email: email
- idx_created_at: created_at

资源统计#

bash
# 查看资源统计信息 显示用户表的统计信息

输出示例:

bash
资源:database://users
总记录数:10,000
活跃记录数:8,500
最后更新:2024-01-15 10:30:00

资源权限#

检查权限#

bash
# 检查资源访问权限 检查用户表的访问权限

输出示例:

bash
资源:database://users
权限:
- 读取:允许
- 写入:允许
- 更新:允许
- 删除:拒绝

请求权限#

bash
# 请求资源访问权限 请求用户表的删除权限

资源缓存#

缓存策略#

MCP 支持资源缓存以提高性能:

bash
# 启用资源缓存 启用用户表缓存 # 查看缓存状态 显示资源缓存状态

输出示例:

bash
资源缓存状态:
- database://users: 已缓存 (1000 条记录)
- database://orders: 未缓存
- filesystem://logs: 已缓存 (50 个文件)

清除缓存#

bash
# 清除特定资源缓存 清除用户表缓存 # 清除所有资源缓存 清除所有资源缓存

资源监控#

监控资源使用#

bash
# 查看资源使用统计 显示资源使用统计

输出示例:

bash
资源使用统计:
- database://users:
  - 读取次数:150
  - 写入次数:20
  - 更新次数:30
  - 删除次数:5
- database://orders:
  - 读取次数:200
  - 写入次数:50
  - 更新次数:40
  - 删除次数:10

监控资源性能#

bash
# 查看资源性能指标 显示资源性能指标

输出示例:

bash
资源性能指标:
- database://users:
  - 平均响应时间:50ms
  - 最大响应时间:200ms
  - 成功率:99.5%
- database://orders:
  - 平均响应时间:80ms
  - 最大响应时间:300ms
  - 成功率:98.7%

资源安全#

数据加密#

bash
# 加密资源数据 加密用户表中的敏感数据

访问控制#

bash
# 设置资源访问控制 限制用户表只能被特定用户访问

审计日志#

bash
# 查看资源访问日志 显示用户表的访问日志

输出示例:

bash
资源访问日志:
- 2024-01-15 10:00:00 - 用户 user1 读取用户表
- 2024-01-15 10:05:00 - 用户 user2 写入用户表
- 2024-01-15 10:10:00 - 用户 user1 更新用户表

资源最佳实践#

1. 合理使用资源#

bash
# 只查询需要的列 查询用户表的 ID 和姓名 # 使用过滤条件 查询用户表中活跃的用户 # 限制结果数量 查询用户表的前 100 条记录

2. 缓存常用资源#

bash
# 缓存频繁访问的资源 启用用户表缓存 # 定期更新缓存 更新用户表缓存

3. 监控资源使用#

bash
# 定期查看资源使用统计 显示资源使用统计 # 识别性能瓶颈 显示资源性能指标

4. 保护敏感资源#

bash
# 加密敏感数据 加密用户表中的密码字段 # 限制访问权限 限制用户表只能被管理员访问 # 记录访问日志 显示用户表的访问日志

故障排除#

资源访问失败#

问题: 无法访问资源

解决方案:

bash
# 1. 检查资源是否存在 /mcp # 2. 检查权限 检查资源访问权限 # 3. 查看错误日志 显示错误日志 # 4. 重新连接服务器 重新连接 MCP 服务器

资源性能问题#

问题: 资源响应缓慢

解决方案:

bash
# 1. 查看性能指标 显示资源性能指标 # 2. 启用缓存 启用资源缓存 # 3. 优化查询 优化资源查询 # 4. 增加超时设置 MCP_TIMEOUT=30000 claude

资源权限错误#

问题: 没有资源访问权限

解决方案:

bash
# 1. 检查权限 检查资源访问权限 # 2. 请求权限 请求资源访问权限 # 3. 联系管理员 联系管理员获取权限

标记本节教程为已读

记录您的学习进度,方便后续查看。